package com.tengju.data.infrastructure.persistence.mybatis.mapper.clickhouse.crm;

import com.tengju.support.infrastructure.aop.MonitorTime;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * @author chenhang
 * @Date 2021/5/6
 */
public interface DwsCrmUserTagMapper {

    List<HashMap<String, Object>> tagList(@Param("idCodes") List<Long> idCodes);

    @MonitorTime
    List<HashMap<String, Object>> list(@Param("genSecIdCodeValues") List<Long> genSecIdCodeValues,
                                       @Param("idCode") Long idCode,
                                       @Param("belongEcIdCode") Long belongEcIdCode,
                                       @Param("belongGenSecIdCode") Long belongGenSecIdCode,
                                       @Param("belongServiceProviderIdCode") Long belongServiceProviderIdCode,
                                       @Param("isDirect") boolean isDirect,
                                       @Param("tagName") String tagName,
                                       @Param("tagValue") String tagValue,
                                       @Param("offset") Integer offset,
                                       @Param("pageSize") Integer pageSize,
                                       @Param("orderColumn") String orderColumn,
                                       @Param("orderType") String orderType,
                                       @Param("m") Integer integer,
                                       @Param("ym") Integer size,
                                       @Param("mList") List<Integer> monthIntList);

    @MonitorTime
    int count(@Param("genSecIdCodeValues") List<Long> genSecIdCodeValues,
              @Param("idCode") Long idCode,
              @Param("belongEcIdCode") Long belongEcIdCode,
              @Param("belongGenSecIdCode") Long belongGenSecIdCode,
              @Param("belongServiceProviderIdCode") Long belongServiceProviderIdCode,
              @Param("isDirect") boolean isDirect,
              @Param("tagName") String tagName,
              @Param("tagValue") String tagValue,
              @Param("monthInt") Integer monthInt,
              @Param("monthInt1") Integer monthInt1,
              @Param("monthIntList") List<Integer> monthIntList);
}

